import java.util.Scanner;

public class s0125 {
    public static void fac(int n){
        if(n<10){
            System.out.println(n%10);
            return;
        }
        fac(n/10);
        System.out.println(n%10);
    }

    public static void main10(String[] args) {

        Scanner scanner = new Scanner(System.in);
        int k = scanner.nextInt();
        fac(k);
                           //关于递归的练习
    }


    public static int sum(int n) {                  //求1~10之和
        if (n == 1) {
            return 1;
        }
        return n + sum(n - 1);
    }

    public static void main11(String[] args) {

        System.out.println(sum(5));
    }
    public static int add(int n){        //求1234各个位上数字之和
        if(n<10){
            return n;
        }
       return n%10+add(n/10);
    }

    public static void main3(String[] args) {
        System.out.println(add(1234));
    }
    public static  int fib (int n){                //斐波那契数列递归方法这个从零开始
        if(n==1){
            return 0;
        }
        if(n==2){
            return 1;
        }
        return fib(n-1)+fib(n-2);
    }
    public static void main(String[] args) {
        System.out.println(fib1(10));
        System.out.println(fib1(5));
        System.out.println(fib1(40));
    }
    public static int fib1( int n){                   //斐波那契数列循环的方法  从1开始的
        if (n==1 || n==2){
            return 1;
        }
        int i=0;
        int f1=1;
        int f2=1;
        int f3=1;
        for (i=3;i<=n;i++){
             f3=f1+f2;
             f1=f2;
             f2=f3;
        }
        return f3;
    }


    public static  int  jc(int n){
        if(n==1){
            return 1;
        }
        return n*jc(n-1);
    }

    public static void main1(String[] args) {
        System.out.println(jc(5));
    }
}
